VBA操作Excel內容排序,用Sort函數對工作表內容排序 | 您所在的位置:网站首页 › vba sort排序 › VBA操作Excel內容排序,用Sort函數對工作表內容排序 |
今天有同學問到關於大批量Excel的Sheet如何簡化排序,但是網上的攻略比較混亂。因此,在這做一下示例。 需求:80頁sheet的Excel文檔,每頁的格式相同,基本內容如下,要求根據A列,升序排列。 代碼如下: Option Explicit Sub MySort() Dim i As Integer Dim maxRow As Integer Dim sht As Worksheet '遍歷所有工作表 For i = 1 To ActiveWorkbook.Worksheets.Count Set sht = ActiveWorkbook.Worksheets(i) '激活當前工作表,Sort只能排序當前工作表 sht.Activate '獲取當前表最大行數 maxRow = sht.UsedRange.Rows.Count '選取範圍進行排序:這裏是選取a3:ao41(前兩行因爲是標題,所以不選);key是排序的列,這裏寫a3,表示以a列爲依據排序,最多可以寫3個key;order表示升序降序;Header表示是否有標題,由於我們沒選a1、a2,所以這裏寫no sht.Range("a3:ao" & maxRow).Sort key1:=sht.Range("a3"), order1:=xlAscending, Header:=xlNo Next i End Sub
注意,Vba的排序函數爲Sort,基本用法如下: Range("待排序數據區域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)其中各類型參數的意義如下: ① key1、key2、key3 這些key是排序的關鍵列(或行)的單元格地址,如 Range("A1") 實際只要選對列標題即可,對行數要求不敏感。【行數要求不敏感】 即數據區域中任意行數都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。 【注意】 1. 一次Sort只能調用至多3個參數,沒有key4可以使用。 2. 至少使用1個參數即可,即key2、key3可以省去不用。 【引用方法】 1. 帶參數名引用,如: key1:=Range("G3") 帶參數名引用時 2. 參數位置引用,即按照上述Sort命令的參數順序直接應用, 如: Range("A1:I19").Sort key1:=Range("G3") 即第1位置參數即爲key1 ② Order1、Order2、Order3 這些Order是排序的順序模式指定參數。即: A-Z升序、或Z-A降序 參數的模式名稱爲: A-Z升序= xlAscending 或直接=1 Z-A降序= xlDescending 或直接=2 帶參數名引用時: Order1:=xlAscending 或 Order1:= 1 參數位置引用時,緊跟key後面。(但注意key2和Order2之間要隔一個Type參數) ③ Header 即是否有標題行參數,一共有3個值: Header:= xlGuess=0 或xlYes=1 或 xlNo=2 即=xlGuess、或=0時,工作表自己判斷 =xlYes、或=1時,強制第1行爲列標題,即第1行【不參與排序】 =xlNo、或=2時,強制沒有列標題。即第1行【也參與排序】 帶參數名引用時: 如: Header:= xlGuess 參數位置引用時,在第7個逗號之後。 (如果key只有1個時,要連續空6個逗號, 如:Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之後連續寫6個逗號) ④ MatchCase 是否匹配大小寫 MatchCase:=False 、或=0 不區分大小寫 MatchCase:=True 、或=1 區分大小寫(Case Sensitive) ⑤ Orientation 排序方向 一般爲同一列中從上到下各行進行排序:Orientation:= xlTopToBottom 、或=1 如果是: 同一行中從左到右各列進行排序,則爲:Orientation:= xlLeftToRight、或=2 ⑥ SortMethod 排序方法 按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info) 按筆畫排序: SortMethod:= xlStroke、或=2 ⑦ DataOption1 按數值或按文本排序 DataOption1:= xlSortNormal
|
CopyRight 2018-2019 实验室设备网 版权所有 |